home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / libs / mtgrap1c / demo7.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1994-07-13  |  12.0 KB  |  304 lines

  1. /*                                                            
  2.   ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  3.   ▒                                                          ▒
  4.   ▒                                                          ▒
  5.   ▒             Neuromancer's Graphics Library               ▒
  6.   ▒                     Version 1.0c                         ▒
  7.   ▒                                                          ▒
  8.   ▒   This routine illustrates the prinicples of animation.  ▒
  9.   ▒   Two method of transfer are demonstrated. One of the    ▒ 
  10.   ▒   blitblock will be copied straight to the screen. The   ▒     
  11.   ▒   other merged with the screen. The whole background     ▒ 
  12.   ▒   is then redrawn.                                       ▒   
  13.   ▒                                                          ▒ 
  14.   ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  15.   ▒                                                          ▒
  16.   ▒     Project:    MTLIB01.LIB                              ▒
  17.   ▒                 DEMO7.CPP                                ▒
  18.   ▒                                                          ▒ 
  19.   ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  20. */
  21. #include <iostream.h>
  22. #include <stdlib.h>
  23. #include <conio.h>
  24. #include "video.h"
  25. #include "bitmap.h"
  26. #include <dos.h>
  27.  
  28. byte sprite1[]={
  29.   /*23,29,*/
  30.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  31.   0, 0, 0, 0, 0, 0, 0, 0, 0,42,42,42,42,42, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  32.   0, 0, 0, 0, 0, 0, 0,42,42,42,42,42,42,42,42,42, 0, 0, 0, 0, 0, 0, 0,
  33.   0, 0, 0, 0, 0, 0,42,42,42,42,42,42,42,42,42,42,42, 0, 0, 0, 0, 0, 0,
  34.   0, 0, 0, 0, 0,42,42,42,42,42,42,42,42,42,42,42,42,42, 0, 0, 0, 0, 0,
  35.   0, 0, 0, 0, 0,42,42,42,42,42,42,42,42,42,42,42,42,42, 0, 0, 0, 0, 0,
  36.   0, 0, 0, 0,42,42,42,42,42,42,42,42,42,42,42,42,42,12,40, 0, 0, 0, 0,
  37.   0, 0, 0, 0,42,42,42,42,42,42,42,42,42,42,42,42,42,41,40, 0, 0, 0, 0,
  38.   0, 0, 0, 0,42,42,42,42,42,42,42,42,42,42,42,42,42,40,40, 0, 0, 0, 0,
  39.   0, 0, 0, 0,42,42,42,42,42,42,42,42,42,42,42,42,42,40,40, 0, 0, 0, 0,
  40.   0, 0, 0, 0,42,42,42,42,42,42,42,42,42,42,42,42,42,40,40, 0, 0, 0, 0,
  41.   0, 0, 0, 0, 0,42,42,42,42,42,42,42,42,42,42,42,12,40, 0, 0, 0, 0, 0,
  42.   0, 0, 0, 0, 0,41,42,42,42,42,42,42,42,42,42,42,40,40, 0, 0, 0, 0, 0,
  43.   0, 0, 0, 0, 0, 0,41,42,42,42,42,42,42,42,42,40,40, 0, 0, 0, 0, 0, 0,
  44.   0, 0, 0, 0, 0, 0, 0,41,41,42,42,42,42,12,40,40, 0, 0, 0, 0, 0, 0, 0,
  45.   0, 0, 0, 0, 0, 0, 0, 0, 0,41,41,41,41,41, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  46.   0, 0, 0, 0, 0, 0, 0, 0, 0,30,29,27,25,24, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  47.   0, 0, 0, 0, 0, 0, 0, 0, 0,30,29,27,25,24, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  48.   0,46,45, 0, 0, 0, 0, 0, 0,30,29,27,25,24, 0, 0, 0, 0, 0, 0,46,44, 0,
  49.   0,46,45, 0, 0, 0, 0, 0, 0,30,29,27,25,24, 0, 0, 0, 0, 0, 0,46,44, 0,
  50.   0,46,45, 0, 0, 0, 0, 0,29,30,29,27,25,24,26, 0, 0, 0, 0, 0,46,44, 0,
  51.   0,46,45,44, 0, 0, 0,29,29,30,29,27,25,24,26,26, 0, 0, 0,46,46,44, 0,
  52.   0,46,45,44, 0, 0,29,29,29,30,29,27,25,24,26,26,26, 0, 0,46,46,44, 0,
  53.   0,46,45,44, 0,29,29,29,29,30,29,27,25,24,26,26,26,26, 0,46,46,44, 0,
  54.   0,46,45,44,29,29,29,29,29,30,29,27,25,24,25,26,26,26,26,46,46,44, 0,
  55.   0,46,45,44,29,29,29,29,29,30,29,27,25,24,25,25,25,26,26,46,46,44, 0,
  56.   0,46,45,44,29,29,29, 0, 0,30,29,27,25,24, 0, 0,25,25,26,46,46,44, 0,
  57.   0,46,45,44,29,29, 0, 0, 0,23,23,24,24,23, 0, 0, 0,25,25,46,46,44, 0,
  58.   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
  59. };
  60.  
  61. byte sprite2[] = {
  62.   /*20,20,*/
  63.  75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
  64.  75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
  65.  75, 75, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  66.  75, 75, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  67.  75, 75, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  68.  75, 75, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  69.  75, 75, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  70.  75, 75, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  71.  75, 75, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  72.  75, 75, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 75, 75,
  73.  75, 75, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 75, 75,
  74.  75, 75, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  75.  75, 75, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  76.  75, 75, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  77.  75, 75, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  78.  75, 75, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  79.  75, 75, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  80.  75, 75, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  81.  75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
  82.  75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75
  83.  
  84. };
  85.  
  86. byte sprite3[]={
  87. //20,20
  88.  75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
  89.  75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
  90.  75, 75, 45, 45, 45, 45, 45, 45, 45, 80, 80, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  91.  75, 75, 45, 45, 45, 45, 45, 45, 45, 80, 80, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  92.  75, 75, 45, 45, 45, 45, 45, 45, 45, 80, 80, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  93.  75, 75, 45, 45, 45, 45, 45, 45, 45, 80, 80, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  94.  75, 75, 45, 45, 45, 45, 45, 45, 45, 80, 80, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  95.  75, 75, 45, 45, 45, 45, 45, 45, 45, 80, 80, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  96.  75, 75, 45, 45, 45, 45, 45, 45, 45, 80, 80, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  97.  75, 75, 45, 45, 45, 45, 45, 45, 45, 80, 80, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  98.  75, 75, 45, 45, 45, 45, 45, 45, 45, 80, 80, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  99.  75, 75, 45, 45, 45, 45, 45, 45, 45, 80, 80, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  100.  75, 75, 45, 45, 45, 45, 45, 45, 45, 80, 80, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  101.  75, 75, 45, 45, 45, 45, 45, 45, 45, 80, 80, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  102.  75, 75, 45, 45, 45, 45, 45, 45, 45, 80, 80, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  103.  75, 75, 45, 45, 45, 45, 45, 45, 45, 80, 80, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  104.  75, 75, 45, 45, 45, 45, 45, 45, 45, 80, 80, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  105.  75, 75, 45, 45, 45, 45, 45, 45, 45, 80, 80, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  106.  75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
  107.  75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75
  108. };
  109.  
  110. byte sprite4[]={
  111. //20,20
  112.  75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
  113.  75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
  114.  75, 75, 80, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  115.  75, 75, 80, 80, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  116.  75, 75, 80, 80, 80, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  117.  75, 75, 45, 80, 80, 80, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  118.  75, 75, 45, 45, 80, 80, 80, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  119.  75, 75, 45, 45, 45, 80, 80, 80, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  120.  75, 75, 45, 45, 45, 45, 80, 80, 80, 45, 45, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  121.  75, 75, 45, 45, 45, 45, 45, 80, 80, 80, 45, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  122.  75, 75, 45, 45, 45, 45, 45, 45, 80, 80, 80, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  123.  75, 75, 45, 45, 45, 45, 45, 45, 45, 80, 80, 80, 45, 45, 45, 45, 45, 45, 75, 75,
  124.  75, 75, 45, 45, 45, 45, 45, 45, 45, 45, 80, 80, 80, 45, 45, 45, 45, 45, 75, 75,
  125.  75, 75, 45, 45, 45, 45, 45, 45, 45, 45, 45, 80, 80, 80, 45, 45, 45, 45, 75, 75,
  126.  75, 75, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 80, 80, 80, 45, 45, 45, 75, 75,
  127.  75, 75, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 80, 80, 80, 45, 45, 75, 75,
  128.  75, 75, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 80, 80, 80, 45, 75, 75,
  129.  75, 75, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 80, 80, 80, 75, 75,
  130.  75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
  131.  75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75
  132. };
  133.  
  134.  
  135. byte sprite5[]={
  136. //20,20
  137.  75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
  138.  75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
  139.  75, 75, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 80, 75, 75,
  140.  75, 75, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 80, 80, 75, 75,
  141.  75, 75, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 80, 80, 80, 75, 75,
  142.  75, 75, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 80, 80, 80, 45, 75, 75,
  143.  75, 75, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 80, 80, 80, 45, 45, 75, 75,
  144.  75, 75, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 80, 80, 80, 45, 45, 45, 75, 75,
  145.  75, 75, 45, 45, 45, 45, 45, 45, 45, 45, 45, 80, 80, 80, 45, 45, 45, 45, 75, 75,
  146.  75, 75, 45, 45, 45, 45, 45, 45, 45, 45, 80, 80, 80, 45, 45, 45, 45, 45, 75, 75,
  147.  75, 75, 45, 45, 45, 45, 45, 45, 45, 80, 80, 80, 45, 45, 45, 45, 45, 45, 75, 75,
  148.  75, 75, 45, 45, 45, 45, 45, 45, 80, 80, 80, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  149.  75, 75, 45, 45, 45, 45, 45, 80, 80, 80, 45, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  150.  75, 75, 45, 45, 45, 45, 80, 80, 80, 45, 45, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  151.  75, 75, 45, 45, 45, 80, 80, 80, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  152.  75, 75, 45, 45, 80, 80, 80, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  153.  75, 75, 45, 80, 80, 80, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  154.  75, 75, 80, 80, 80, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 75, 75,
  155.  75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
  156.  75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75
  157. };
  158.  
  159. block page1,page2;
  160.  
  161. void main(void)
  162. {
  163.     
  164.     int xcor;    
  165.     int ycor;
  166.     
  167.     int xcor1;
  168.     int ycor1;
  169.  
  170.     int xdir;
  171.     int ydir;
  172.  
  173.     int xdir1;
  174.     int ydir1;
  175.  
  176.     int flag=0;
  177.     int inc=0;
  178.     int ch;
  179.  
  180.     mtSetVGAMode();            //Set up VGA Mode
  181.     mtClrScr(25);
  182.  
  183.  
  184.     if ((page1=mtAllocPage(0,0,319,199))==NULL)
  185.     {
  186.         mtSetTextMode();
  187.         cout << "Error setting up Page1"<<endl;
  188.         exit(0);
  189.     }
  190.  
  191.     if ((page2=mtAllocPage(0,0,319,199))==NULL)
  192.     {
  193.         mtFreePage(PAGE_1);
  194.         mtSetTextMode();
  195.         cout << "Error setting up Page2"<<endl;
  196.         exit(0);
  197.     }
  198.  
  199.     //typically, this is the hidden screen where you would download
  200.     //your static background
  201.     mtSetPage(PAGE_1);
  202.     mtClrScr(25);
  203.  
  204.     mtSetPage(PAGE_2);
  205.     mtClrScr(25);
  206.  
  207.     xcor = random(297);
  208.     ycor = 170;
  209.     xcor1 =random(300);
  210.     ycor1 =10;
  211.  
  212.     xdir =5;
  213.     ydir =5;
  214.     xdir1=5;
  215.     ydir1=5;
  216.     flag=0;
  217.     inc=0;
  218.  
  219.     mtSetPage(PAGE_1);
  220.     
  221.     while(!kbhit())
  222.     {
  223.         xcor += xdir;
  224.         ycor += ydir;
  225.  
  226.         xcor1 += xdir1;
  227.         ycor1 += ydir1;
  228.  
  229.         if (xcor < 0 || xcor > 297 ) {
  230.             xdir = -xdir;
  231.             xcor += xdir;
  232.         }
  233.  
  234.         if (ycor <0|| ycor >170) {
  235.             ydir = -ydir;
  236.             ycor += ydir;
  237.         }
  238.  
  239.         if (xcor1<0||xcor1 >300) {
  240.             xdir1 = -xdir1;
  241.             xcor1 += xdir1;
  242.         }
  243.         
  244.         if (ycor1 <0 || ycor1>179) {
  245.             ydir1 = -ydir1;
  246.             ycor1 += ydir1;
  247.         }
  248.  
  249.         mtCPutBlit(xcor, ycor, 23, 29, sprite1);        //copy mode
  250.         if (flag ==0){
  251.             mtCPutSprite(xcor1, ycor1, 20, 20, sprite2);    //sprite mode
  252.             inc++;
  253.             if (inc == 1) flag = 1;
  254.         }
  255.         else
  256.         if (flag==1)
  257.         {
  258.             mtCPutSprite(xcor1, ycor1, 20, 20, sprite4);    //sprite mode
  259.             inc++;
  260.             if (inc==2) flag=2;
  261.         }
  262.         else
  263.         if (flag==2)
  264.         {
  265.             mtCPutSprite(xcor1, ycor1, 20, 20, sprite3);    //sprite mode
  266.             inc++;
  267.             if (inc==3) flag=3;
  268.         }
  269.         else
  270.         if (flag==3)
  271.         {    
  272.             mtCPutSprite(xcor1, ycor1, 20, 20, sprite5);    //sprite mode
  273.             inc++;
  274.             if (inc==4)
  275.             {
  276.              flag=0;
  277.              inc=0;
  278.             }
  279.         }
  280.         mtWaitRetrace();
  281.         mtFlipPage(PAGE_1);
  282.         mtCopyPage(PAGE_2,PAGE_1);
  283.     }
  284.  
  285.     getch();
  286.  
  287.     mtFreePage(page1);
  288.     mtFreePage(page2);
  289.  
  290.     mtSetTextMode();
  291.  
  292.     cout << "Thank you for using the library!" << endl;
  293.  
  294.     exit(0);
  295.     
  296. }
  297.  
  298.            
  299.             
  300.  
  301.            
  302.  
  303.            
  304.